package analisador.lexico;

import java.awt.Component;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;

/**
 * @author Danilo
 * @author Julio
 * @author Lucas
 * @author Willian
 */

public class AbreArquivo {
    private static Component jPanel1;

    /**
     * @param args the command line arguments
     */
    
   AbreArquivo(){}  
   
    public static void main(String[] args) throws IOException{
        // TODO code application logic here
        if(args.length == 2){
             String arquivoEntrada, arquivoSaida;
         
            arquivoEntrada  = args[0];


           // int ultimo = args[0].split("/").length - 1;
            arquivoSaida    = args[1];
         
        
        BufferedReader in;
        File out;
        out = new File(arquivoSaida);
        
        //JFileChooser fc = new JFileChooser();    
        //int option = fc.showOpenDialog(jPanel1);    
        //if (option == JFileChooser.APPROVE_OPTION) {  
            //File file = fc.getSelectedFile();  
      
            in  = new BufferedReader(new FileReader(arquivoEntrada));

                   AnalisadorLexico al = new AnalisadorLexico(in, out);
                   Token token = new Token(al);
                   
                   //token.getToken();
                   //while((!token.getNome().isEmpty() || token.isEncontrouErro()) && !token.equals("fim_algoritmo") && al.lendoLinha)
                     //   token.getToken();
                   //System.out.println(token.getTipo() + " - " + token.getNome());
                   
                   AnalisadorSintatico analisadorSintatico = new AnalisadorSintatico(token);
                   GeracaoCodigo gc = new GeracaoCodigo(token);
                   
                   
                  try{
                        analisadorSintatico.programa();
                        gc.programa();
                        al.setOut(gc.getCodigo());
                   }catch(ExcecaoCompilador ex){
                       al.setOut(ex.getMessage());
                   }
        }else
            System.out.println("Informe os arquivos de entrada e saida do projeto.");
    } 
}
